package com.dragon.modules.yuegou.query.member;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.member.MemberRoomEntity;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

/**
 * 会员房屋关系表 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2020-08-13 15:47:15
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class MemberRoomQuery extends MemberRoomEntity implements Query<MemberRoomEntity> {

    /** 查询条件 */
	@JsonUnwrapped(prefix = "id")
	private Condition<String> idCondition;

    /** 会员ID查询条件 */
	@JsonUnwrapped(prefix = "memberId")
	private Condition<String> memberIdCondition;

    /** 房屋ID查询条件 */
	@JsonUnwrapped(prefix = "roomId")
	private Condition<String> roomIdCondition;

    /** 房屋名称查询条件 */
	@JsonUnwrapped(prefix = "roomName")
	private Condition<String> roomNameCondition;

    /** 项目ID查询条件 */
	@JsonUnwrapped(prefix = "projectId")
	private Condition<String> projectIdCondition;

    /** 项目名称查询条件 */
	@JsonUnwrapped(prefix = "projectName")
	private Condition<String> projectNameCondition;

    /** 楼栋ID查询条件 */
	@JsonUnwrapped(prefix = "buildingId")
	private Condition<String> buildingIdCondition;

    /** 楼栋名称查询条件 */
	@JsonUnwrapped(prefix = "buildingName")
	private Condition<String> buildingNameCondition;

    /** 楼层ID查询条件 */
	@JsonUnwrapped(prefix = "floorId")
	private Condition<String> floorIdCondition;

    /** 楼层名称查询条件 */
	@JsonUnwrapped(prefix = "floorName")
	private Condition<String> floorNameCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public MemberRoomQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public MemberRoomQuery(MemberRoomEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public MemberRoomQuery(MemberRoomQuery other) {
		super(other);
		if(other.idCondition != null) {
			this.idCondition = other.idCondition.copy();
		}
		if(other.memberIdCondition != null) {
			this.memberIdCondition = other.memberIdCondition.copy();
		}
		if(other.roomIdCondition != null) {
			this.roomIdCondition = other.roomIdCondition.copy();
		}
		if(other.roomNameCondition != null) {
			this.roomNameCondition = other.roomNameCondition.copy();
		}
		if(other.projectIdCondition != null) {
			this.projectIdCondition = other.projectIdCondition.copy();
		}
		if(other.projectNameCondition != null) {
			this.projectNameCondition = other.projectNameCondition.copy();
		}
		if(other.buildingIdCondition != null) {
			this.buildingIdCondition = other.buildingIdCondition.copy();
		}
		if(other.buildingNameCondition != null) {
			this.buildingNameCondition = other.buildingNameCondition.copy();
		}
		if(other.floorIdCondition != null) {
			this.floorIdCondition = other.floorIdCondition.copy();
		}
		if(other.floorNameCondition != null) {
			this.floorNameCondition = other.floorNameCondition.copy();
		}
	}

	@Override
	public QueryWrapper<MemberRoomEntity> toQueryWrapper() {
		QueryWrapper<MemberRoomEntity> wrapper = new QueryWrapper<>(this);
		if (idCondition != null) {
			idCondition.toWrapper(wrapper, COL_ID);
		}
		if (memberIdCondition != null) {
			memberIdCondition.toWrapper(wrapper, COL_MEMBER_ID);
		}
		if (roomIdCondition != null) {
			roomIdCondition.toWrapper(wrapper, COL_ROOM_ID);
		}
		if (roomNameCondition != null) {
			roomNameCondition.toWrapper(wrapper, COL_ROOM_NAME);
		}
		if (projectIdCondition != null) {
			projectIdCondition.toWrapper(wrapper, COL_PROJECT_ID);
		}
		if (projectNameCondition != null) {
			projectNameCondition.toWrapper(wrapper, COL_PROJECT_NAME);
		}
		if (buildingIdCondition != null) {
			buildingIdCondition.toWrapper(wrapper, COL_BUILDING_ID);
		}
		if (buildingNameCondition != null) {
			buildingNameCondition.toWrapper(wrapper, COL_BUILDING_NAME);
		}
		if (floorIdCondition != null) {
			floorIdCondition.toWrapper(wrapper, COL_FLOOR_ID);
		}
		if (floorNameCondition != null) {
			floorNameCondition.toWrapper(wrapper, COL_FLOOR_NAME);
		}
		return wrapper;
	}
	
	/**
	 * 构造并返回查询条件
	 * 
	 * @return idCondition 查询条件
	 */
	public Condition<String> id() {
		this.idCondition = new Condition<>();
		return this.idCondition;
	}
	
	/**
	 * 获取查询条件
	 * 
	 * @return idCondition 查询条件
	 */
	public Condition<String> getIdCondition() {
		return idCondition;
	}

	/**
	 * 设置查询条件
	 * 
	 * @param idCondition 查询条件
	 */
	public void setIdCondition(Condition<String> idCondition) {
		this.idCondition = idCondition;
	}

	/**
	 * 构造并返回会员ID查询条件
	 * 
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> memberId() {
		this.memberIdCondition = new Condition<>();
		return this.memberIdCondition;
	}
	
	/**
	 * 获取会员ID查询条件
	 * 
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> getMemberIdCondition() {
		return memberIdCondition;
	}

	/**
	 * 设置会员ID查询条件
	 * 
	 * @param memberIdCondition 会员ID查询条件
	 */
	public void setMemberIdCondition(Condition<String> memberIdCondition) {
		this.memberIdCondition = memberIdCondition;
	}

	/**
	 * 构造并返回房屋ID查询条件
	 * 
	 * @return roomIdCondition 房屋ID查询条件
	 */
	public Condition<String> roomId() {
		this.roomIdCondition = new Condition<>();
		return this.roomIdCondition;
	}
	
	/**
	 * 获取房屋ID查询条件
	 * 
	 * @return roomIdCondition 房屋ID查询条件
	 */
	public Condition<String> getRoomIdCondition() {
		return roomIdCondition;
	}

	/**
	 * 设置房屋ID查询条件
	 * 
	 * @param roomIdCondition 房屋ID查询条件
	 */
	public void setRoomIdCondition(Condition<String> roomIdCondition) {
		this.roomIdCondition = roomIdCondition;
	}

	/**
	 * 构造并返回房屋名称查询条件
	 * 
	 * @return roomNameCondition 房屋名称查询条件
	 */
	public Condition<String> roomName() {
		this.roomNameCondition = new Condition<>();
		return this.roomNameCondition;
	}
	
	/**
	 * 获取房屋名称查询条件
	 * 
	 * @return roomNameCondition 房屋名称查询条件
	 */
	public Condition<String> getRoomNameCondition() {
		return roomNameCondition;
	}

	/**
	 * 设置房屋名称查询条件
	 * 
	 * @param roomNameCondition 房屋名称查询条件
	 */
	public void setRoomNameCondition(Condition<String> roomNameCondition) {
		this.roomNameCondition = roomNameCondition;
	}

	/**
	 * 构造并返回项目ID查询条件
	 * 
	 * @return projectIdCondition 项目ID查询条件
	 */
	public Condition<String> projectId() {
		this.projectIdCondition = new Condition<>();
		return this.projectIdCondition;
	}
	
	/**
	 * 获取项目ID查询条件
	 * 
	 * @return projectIdCondition 项目ID查询条件
	 */
	public Condition<String> getProjectIdCondition() {
		return projectIdCondition;
	}

	/**
	 * 设置项目ID查询条件
	 * 
	 * @param projectIdCondition 项目ID查询条件
	 */
	public void setProjectIdCondition(Condition<String> projectIdCondition) {
		this.projectIdCondition = projectIdCondition;
	}

	/**
	 * 构造并返回项目名称查询条件
	 * 
	 * @return projectNameCondition 项目名称查询条件
	 */
	public Condition<String> projectName() {
		this.projectNameCondition = new Condition<>();
		return this.projectNameCondition;
	}
	
	/**
	 * 获取项目名称查询条件
	 * 
	 * @return projectNameCondition 项目名称查询条件
	 */
	public Condition<String> getProjectNameCondition() {
		return projectNameCondition;
	}

	/**
	 * 设置项目名称查询条件
	 * 
	 * @param projectNameCondition 项目名称查询条件
	 */
	public void setProjectNameCondition(Condition<String> projectNameCondition) {
		this.projectNameCondition = projectNameCondition;
	}

	/**
	 * 构造并返回楼栋ID查询条件
	 * 
	 * @return buildingIdCondition 楼栋ID查询条件
	 */
	public Condition<String> buildingId() {
		this.buildingIdCondition = new Condition<>();
		return this.buildingIdCondition;
	}
	
	/**
	 * 获取楼栋ID查询条件
	 * 
	 * @return buildingIdCondition 楼栋ID查询条件
	 */
	public Condition<String> getBuildingIdCondition() {
		return buildingIdCondition;
	}

	/**
	 * 设置楼栋ID查询条件
	 * 
	 * @param buildingIdCondition 楼栋ID查询条件
	 */
	public void setBuildingIdCondition(Condition<String> buildingIdCondition) {
		this.buildingIdCondition = buildingIdCondition;
	}

	/**
	 * 构造并返回楼栋名称查询条件
	 * 
	 * @return buildingNameCondition 楼栋名称查询条件
	 */
	public Condition<String> buildingName() {
		this.buildingNameCondition = new Condition<>();
		return this.buildingNameCondition;
	}
	
	/**
	 * 获取楼栋名称查询条件
	 * 
	 * @return buildingNameCondition 楼栋名称查询条件
	 */
	public Condition<String> getBuildingNameCondition() {
		return buildingNameCondition;
	}

	/**
	 * 设置楼栋名称查询条件
	 * 
	 * @param buildingNameCondition 楼栋名称查询条件
	 */
	public void setBuildingNameCondition(Condition<String> buildingNameCondition) {
		this.buildingNameCondition = buildingNameCondition;
	}

	/**
	 * 构造并返回楼层ID查询条件
	 * 
	 * @return floorIdCondition 楼层ID查询条件
	 */
	public Condition<String> floorId() {
		this.floorIdCondition = new Condition<>();
		return this.floorIdCondition;
	}
	
	/**
	 * 获取楼层ID查询条件
	 * 
	 * @return floorIdCondition 楼层ID查询条件
	 */
	public Condition<String> getFloorIdCondition() {
		return floorIdCondition;
	}

	/**
	 * 设置楼层ID查询条件
	 * 
	 * @param floorIdCondition 楼层ID查询条件
	 */
	public void setFloorIdCondition(Condition<String> floorIdCondition) {
		this.floorIdCondition = floorIdCondition;
	}

	/**
	 * 构造并返回楼层名称查询条件
	 * 
	 * @return floorNameCondition 楼层名称查询条件
	 */
	public Condition<String> floorName() {
		this.floorNameCondition = new Condition<>();
		return this.floorNameCondition;
	}
	
	/**
	 * 获取楼层名称查询条件
	 * 
	 * @return floorNameCondition 楼层名称查询条件
	 */
	public Condition<String> getFloorNameCondition() {
		return floorNameCondition;
	}

	/**
	 * 设置楼层名称查询条件
	 * 
	 * @param floorNameCondition 楼层名称查询条件
	 */
	public void setFloorNameCondition(Condition<String> floorNameCondition) {
		this.floorNameCondition = floorNameCondition;
	}

}
